package com.aiolos.springboot.stepbystep.service;

import com.aiolos.springboot.stepbystep.model.AyRole;
import com.aiolos.springboot.stepbystep.model.AyUser;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;

/**
 * 服务层的接口
 */
public interface IAyUserService {

    AyUser findById(Integer id);
    List<AyUser> findAll();
    Future<List<AyUser>> findAsynAll(); //异步调用

    AyUser save(AyUser ayUser); //更新、保存
    void delete(Integer id);
    Page<AyUser> findAll(Pageable pageable);//分页

    AyRole addRole(Map<String, Object> map);//添加角色

    //自定义查询
    List<AyUser> findByIdIn(Collection<Integer> ids);
    List<AyUser> findByNameLike(String name);
    AyUser findByName(String name);

    //使用MyBatis
    AyUser findByNameAndPassword(String name, String password);

    //测试Retry机制
    AyUser findByNameAndPasswordRetry(String name, String password);

}
